/**
 * Copyright (C), 2015-2020, XXX有限公司
 * FileName: ChainTest
 * Author:   AEO WUGUOZHI
 * Date:     2020/7/15 11:02
 * Description: 异常链
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.imooc.Test;

/**
 * 〈一句话功能简述〉<br> 
 * 〈异常链〉
 *
 * @author AEO WUGUOZHI
 * @create 2020/7/15
 * @since 1.0.0
 */
public class ChainTest {
/*
test1()抛出"喝大了"异常
test2()：调用test1()，捕获"喝大了"异常，并且包装成Runtime异常，继续抛出
main():调用test2()，尝试捕获test2()抛出的异常
* */

    public static void main(String[] args) {
        ChainTest ct = new ChainTest();
        try{
            ct.test2();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public void test1() throws DrunkException{                   //该方法不处理异常，抛给调用者处理异常
        throw new DrunkException("喝酒别开车");
    }

    public void test2(){                                         //调用者test2（）进行try catch 异常处理
        try{
            test1();
        }catch (DrunkException e){
            RuntimeException newExc = new RuntimeException(e);
//            newExc.initCause(e);
            throw newExc;
        }
    }


}